import bayes

# 创建一些实验样本
listOPosts,listClasses = bayes.loadDataSet()

# 创建一个包含所有文档中出现的不重复词的列表
myVocabList = bayes.createVocabList(listOPosts)

# 调用setOfWords2Vec函数，依次计算listOPosts中文档的文档向量
trainMat = []
for postinDoc in listOPosts:
    trainMat.append(bayes.setOfWords2Vec(myVocabList,postinDoc))  # 词集模型（set-of-words model）
    #trainMat.append(bayes.bagOfWords2VecMN(myVocabList,postinDoc))  # 词袋模型（bag-of-words model）

# 计算属于侮辱性文档的概率，以及两个类别的概率向量
p0V,p1V,pAb = bayes.trainNB0(trainMat,listClasses)

# 配置测试文档
testEntry = ['love','my','dalmation']
# 计算测试文档testEntry的文档向量
thisDoc = bayes.setOfWords2Vec(myVocabList,testEntry)
# 对文档进行分类，并打印输出
print (testEntry,'classified as: ',bayes.classifyNB(thisDoc,p0V,p1V,pAb))
# 重复配置测试文档
testEntry = ['stupid', 'garbage']
thisDoc = bayes.setOfWords2Vec(myVocabList, testEntry)
print (testEntry,'classified as: ',bayes.classifyNB(thisDoc,p0V,p1V,pAb))

# 封装的测试函数
bayes.testingNB()